/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package UI.funcionarios;

import UI.PanelFormularioGenerico;
import gestorBD.Controlador;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import uiMain.OpcionDeMenu;
import static uiMain.bienRaizOk.ventana;


public class PanelOpcionRegistrarUnFuncionario extends OpcionDeMenu {
    
    PanelFormularioGenerico panelFormulario;
    JPanel panelDeBotones;

    String[] labelsFuncionario = {"Cédula", "Nombre", "Contraseña", "Salario base"};
    String[] valoresFuncionario = {"", "", "", ""};
    int[] tiposDeCampoFuncionario = {1, 0, 0, 1};

    @Override
    public void ejecutar() {
        this.setLayout(new BorderLayout());

        this.panelFormulario = new PanelFormularioGenerico();
        this.panelDeBotones = new JPanel(new FlowLayout());

        JButton botonRegistrar = new JButton("Registrar funcionario");
        this.panelDeBotones.add(botonRegistrar);

        JButton botonVolver = new JButton("Volver");
        this.panelDeBotones.add(botonVolver);

        
        this.panelFormulario = new PanelFormularioGenerico("Criterio", "Valor", labelsFuncionario, valoresFuncionario, tiposDeCampoFuncionario);
        this.add(this.panelFormulario, BorderLayout.CENTER);
        this.add(this.panelDeBotones, BorderLayout.SOUTH);

        //Se añaden las funcionalidades
        botonRegistrar.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                

                for (int i = 0; i < labelsFuncionario.length; i++) {
                    if (!labelsFuncionario[i].contains("opcional") && valoresFuncionario[i].equals("")) {
                        String textoPopUp = "El campo " + labelsFuncionario[i].toLowerCase() + " es obligatorio";
                        JOptionPane.showMessageDialog(null, textoPopUp, "Error", JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                }
                long cedula = Long.parseLong(valoresFuncionario[0]);
                String nombre = valoresFuncionario[1];
                String contrasenha = valoresFuncionario[2];
                long salarioBase = Long.parseLong(valoresFuncionario[3]);

                boolean sePudoRegistrar = Controlador.registrarNuevoFuncionario(cedula,nombre,contrasenha,salarioBase);
                
                if (!sePudoRegistrar) {
                    String textoPopUp = "Ya existe un usuario en el sistema con cédula " + cedula;
                    JOptionPane.showMessageDialog(null, textoPopUp, "Error", JOptionPane.ERROR_MESSAGE);
                } else {
                    String textoPopUp = "El funcionario " + nombre + " ha sido registrado de manera exitosa como uno de sus subordinados";
                    JOptionPane.showMessageDialog(null, textoPopUp, "Información", JOptionPane.INFORMATION_MESSAGE);
                    ventana.mostrarPanelOpcionesDeFuncionario();
                }
            }
        });

        botonVolver.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                ventana.mostrarPanelOpcionesDeFuncionario();
            }

        });

        ventana.mostrarPanel(this);
    }

    @Override
    public String toString() {
        return "Registrar un funcionario a mi cargo";
    }
}
